package gestioneDatabase.Post;

import java.util.ArrayList;

import models.Post;
import models.User;

/**
 * Permette di aggiungere una risposta a un post o di visualizzare l'elenco di
 * risposte del post stesso.
 * 
 */
public class ResponsesManager {

	private ResponseInserter inserter;

	private ResponsesManager() {

	}

	private static ResponsesManager responsesManager = new ResponsesManager();

	public static ResponsesManager getManager() {
		return responsesManager;
	}

	/**
	 * Permette l'inserimento di una risposta.
	 * 
	 * @param postID
	 *            l'ID dell'utente che risponde
	 * @param response
	 *            La risposta vera e propria scritta dall'utente.
	 */
	public void addNewResponse(int postID, Post response) {
		inserter = new ResponseInserter(response, postID);
		inserter.execute();
	}

	/**
	 * Permette di visualizzare tutte le risposte.
	 * 
	 * @param postID
	 *            L'ID del post oggetto.
	 * @return
	 * 			  L'arrayList di risposte
	 */
	public ArrayList<Post> getAllResponses(int postID) {
		Post post = PostsManager.getManager().getPostByID(postID);
		return post.getResponses();
	}
	
	/**
	 * 
	 * 
	 * 
	 * @param authorRes
	 * 			L'autore della risposta
	 * @param contentRes
	 * 			Il contentuto della risposta
	 * @return
	 * 			La risposta completa
	 */
	public Post fillSingleResponse(String authorRes, String contentRes) {
		User userRes = new User(authorRes);
		Post response = new Post(userRes);
		response.setContent(contentRes);
		return response;
	}

}
